/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：UICompositeRadioText.js<br>
 * 日期：2016年9月28日<br>
 * 作者: 杨顺强<br>
 * 功能：radioText组件 由radio组件和text组件复合而成，可以完成radio位置和text位置的控制<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/
window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 函数名称：Rainier.UI.V2.UICompositeRadioText<br>
 * 函数功能：文字说明的横线组件<br>
 * 参数输入：<br>
 * 异常信息：<br>
 */
Rainier.UI.V2.UICompositeRadioText = Rainier.UI.V2.UIComposite.extend({
	
	NAME : "Rainier.UI.V2.UICompositeRadioText",
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeRadioText.init<br>
	 * 函数功能：初始化横线组件<br>
	 * 参数输入：objParentComposite : UIComposite 父组件对象<br>
	 * 参数输入：objProperties:  格式按照如下方式填写
	 * {
	 		optionName 	: "",			//标识该组件的key值
	 		style		: "",			//容纳radio组件和text组件的容器div的样式
	 		radio		:
	 		{
	 			name  : "",				//radio的组名
	 			value : "",				//radio的值
	 		},
	 		text		:
	 		{
	 			style : "",				//容纳text组件的div的样式
	 			text  : "",				//text组件的内容
	 		}
	 * }<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	init : function(objParentComposite,objProperties){
		
		this.radio 				= null;			//当前组件中的radio控件
		this.text				= null;
		if(objProperties.optionName){
			this.optionName = objProperties.optionName;
		}else{
			throw new Error("该组件的optionName属性为必设项,请修改对象参数信息");
		}
		if(objProperties.style){
			this.style = objProperties.style;
		}else{
			throw new Error("该组件的style属性为必设项,请修改对象参数信息");
		}
		if(objProperties.radio){
			this.radioProperties = objProperties.radio;
		}else{
			throw new Error("该组件的子组件radio组件为必设项,请修改对象参数信息");
		}
		
		if(objProperties.text){
			this.textProperties = objProperties.text;
		}else{
			throw new Error("该组件的子组件text组件为必设项,请修改对象参数信息");
		}
		this._super(objParentComposite,objProperties);
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeRadioText.createComposite<br>
	 * 函数功能：组件创建函数，完成对组件的创建工作<br>
	 * 参数输入：eleParent ： 父节点Tag<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	createComposite : function(eleParent){
		this._super(eleParent);
		var newEle = this.CreateElement("div",this.m_objProperties.id,null,
						{style:this.style});
		eleParent.append(newEle);
		if(this.radioProperties.name && this.radioProperties.value){
			this.radioComponent = new Rainier.UI.V2.UICompositeRadio(this,this.radioProperties);
			this.radio = this.radioComponent.getRadio();
		}else{
			throw new Error("该组件的子组件radio组件参数信息错误,请修改对象参数信息");
		}
		if(this.textProperties.style && this.textProperties.text){
			this.text = new Rainier.UI.V2.UICompositeText(this,this.textProperties);
		}else{
			throw new Error("该组件的子组件text组件参数信息错误,请修改对象参数信息");
		}
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeRadio.getRadio<br>
	 * 函数功能：获取当前组件中的radio组件对象<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：radio 子组件<br>
	 * 异常信息：无<br>
	 */
	getRadio : function(){
		if(this.radio){
			return this.radio;
		}
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeRadio.getRadioValue<br>
	 * 函数功能：获取当前组件中的radio控件中的值<br>
	 * 参数输入：无<br>
	 * 参数输出：无<br>
	 * 函数返回：radio组件中的值，是否被选中。<br>
	 * 异常信息：无<br>
	 */
	getRadioValue : function(){
		return this.getRadio().is(":checked");
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.UICompositeRadio.setRadioValue<br>
	 * 函数功能：获取当前组件中的radio控件中的值<br>
	 * 参数输入：value boolean类型的值<br>
	 * 参数输出：无<br>
	 * 函数返回：radio组件中的值，是否被选中。<br>
	 * 异常信息：无<br>
	 */
	setRadioValue : function(value){
		this.getRadio().attr("checked",value);
	}
});
